home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / DEF / Define / Basics / def-length next >
Lisp/Scheme  |  1998-10-23  |  2KB  |  35 lines

  1. def-length <instruments&lengths>
  2.  
  3. def-length defines the note lengths for each instrumental part. The note length is the duration between one symbol and another. If it is used without def-expression the compiled durations viewed on a sequencer editor will show notes to be at maximum legato. Note lengths may be set as tick values as well as in the m/n formula. Pop music type symbol and length patterns are defined more easily with def-rhythm.
  4.  
  5. (setq values '(1/4 1/4 1/8))
  6.  
  7. (def-length
  8.    default '1/16
  9.    bass '((1/4 1/4 1/8))
  10.    drum (gen-fibonacci 4 '(1/2 1/4) '(1/8. 1/4.))
  11.    guitar '(18 15 15)
  12.    keyboard '((96 24 48 24 -48))
  13.    perc values
  14. )
  15.  
  16. If you wish to produce performance material directly as MIDI data you are advised to use def-expression as a matter of course.
  17.  
  18. Nested Lists
  19.  
  20. The length, velocity and symbol forms can be one of the following:
  21.  
  22. • a value like 1/16, 64 and a
  23. • a single list (e0 e1 e2... en)
  24. • a nested list ((e0 e1 e2... en)) 
  25. • a list of lists ((e00 e01 e02... e0n) (e10 e11 e12... e1n) ... (en0 en1 en2... enn)). 
  26.  
  27. The difference between them is that:
  28.  
  29. • the value is repeated over and over 
  30. • the single list is repeated when all of its values are used
  31. • the nested list is restarted at the beginning of every zone 
  32. • the list of lists describes the values used in each zone. These values are repeated over and over inside the zone. If there are more zones than lists defined then the whole list of lists is restarted.
  33.  
  34. Note that you must quote these forms if you are writing them manually. If the values are returned by a function the output can be used directly.
  35.